// Created by WXX on 2021/11/22 13:57
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// 如果题目考虑是ab的话，等价于合法括号序列
/**
 * 执行用时：20 ms, 在所有 C++ 提交中击败了23.96%的用户
 * 内存消耗：8.4 MB, 在所有 C++ 提交中击败了19.79%的用户
 */
class Solution {
public:
    bool isValid(string s) {
        string stk;
        for (auto c : s) {
            stk += c;
            if (stk.size() >= 3 && stk.substr(stk.size() - 3) == "abc")
                for (int i = 0; i < 3; i++)
                    stk.pop_back();
        }
        return stk.empty();
    }
};

int main() {

    cout << Solution().isValid("aabcbc") << endl;  // true

    return 0;
}
